跳到主要内容

17.串行接收

在许多(较旧的)串行通信协议中,每个数据字节都伴随着一个起始位和一个停止位发送,以帮助接收器从比特流中界定字节。一种常见的方案是使用1个起始位(0)、8个数据位和1个停止位(1)。当没有传输数据时,线路也保持逻辑1(空闲状态)。

设计一个有限状态机,当给定比特流时,能够识别字节是否已被正确接收。它需要识别起始位,等待所有8个数据位,然后验证停止位是否正确。如果停止位没有如预期出现,FSM必须等待直到找到停止位之后再尝试接收下一个字节。

以下是一些时序图的说明:

alt text

模块声明

module top_module(
input clk,
input in,
input reset, // Synchronous reset
output done
);

做题区